package com.example.forum.common.enums;

/**
 * @author hanzishuai
 * @date 2025/3/21 22:40
 * @Description 错误描述
 */
public enum ResultCode {

    SUCCESS                     (0, "操作成功"),


    FAILED                      (1000, "操作失败"),
    FAILED_UNAUTHORIZED         (1001, "未授权"),
    FAILED_PARAMS_VALIDATE      (1002, "参数校验失败"),
    FAILED_FORBIDDEN            (1003, "禁止访问"),
    FAILED_CREATE               (1004, "新增失败"),
    FAILED_NOT_EXISTS           (1005, "资源不存在"),

    // 关于用户的错误描述
    FAILED_USER_EXISTS          (1101, "用户已存在"),
    FAILED_USER_NOT_EXISTS      (1102, "用户不存在"),
    FAILED_LOGIN                (1103, "用户名或密码错误"),
    FAILED_USER_BANNED          (1104, "您已被禁言, 请联系管理员, 并重新登录."),
    FAILED_USER_ARTICLE_COUNT   (1105, "更新帖子数量失败"),
    FAILED_TWO_PWD_NOT_SAME     (1106, "两次输入的密码不一致"),
    FAILED_USER_NOT_LOGIN       (1107, "用户未登录"),
    FAILED_USER_MULTIPLE_LOGIN  (1108, "禁止多开"),
    FAILED_USER_NOT_ADMIN       (1109, "您不是管理员"),



    // 关于版块的错误描述
    FAILED_BOARD_ARTICLE_COUNT          (1201, "更新帖子数量失败"),
    FAILED_BOARD_BANNED                 (1202, "版块状况异常"),
    FAILED_BOARD_NOT_EXISTS             (1203, "版块不存在"),
    FAILED_BOARD_EXISTS                 (1203, "版块已存在"),


    // 关于帖子的错误描述
    FAILED_ARTICLE_NOT_EXISTS           (1301, "帖子不存在"),
    FAILED_ARTICLE_BANNED               (1302, "帖子状况异常"),
    FAILED_ARTICLE_SEARCH               (1303, "搜索失败，请检查输入"),

    // 关于站内信的错误描述
    FAILED_MESSAGE_NOT_EXISTS           (1401, "站内信不存在"),
    FAILED_MESSAGE_SEND_TO_SELF         (1402, "不能给自己发站内信"),
    FAILED_MESSAGE_RECEIVE_ABNORMAL     (1403, "接收者状态异常"),
    FAILED_MESSAGE_REPLY_TO_SELF        (1404, "不能回复自己的站内信"),
    FAILED_MESSAGE_BANNED               (1405, "站内信状况异常"),

    // 关于帖子回复的错误描述
    FAILED_ARTICLE_REPLY_NOT_EXISTS           (1501, "帖子回复不存在"),
    FAILED_ARTICLE_REPLY_BANNED               (1502, "帖子回复状况异常"),



    ERROR_SERVICES                      (2000, "服务器内部错误"),
    ERROR_IS_NULL                       (2001, "IS NULL.");

    // 状态码
    int code;

    // 描述信息
    String message;

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    @Override
    public String toString() {
        return "code = " + code + ", message = " + message + '.';
    }

    ResultCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}










